先自我介紹,我是一名Solution Architect,在資訊科技行業中工作了已經超過了十個年頭。目前在香港一家資訊科技公司工作,主要的工作內容是為客戶提供一些雲端及DevOps的解決方案。
最近幾年,越來越多客戶需要為公司建立一套DevOps方案。在日常開發的時候,我留意到不少客戶都有一個很相似的狀況。在未有實際效益前,管理層不一定能夠理解DevOps改革的好處及效益,因此通常在起步階段的時候,預算方面都未必有很充足的資金,去採購企業級的軟體去建構一套完整的CICD Pipeline方案。所以藉著今次IT邦的鐵人賽,我想跟大家分享一下在資金有限的情況下,如何可以利用一些開源軟件,去建構一套低成本的CICD Pipeline方案。
接下來分享的內容主要都是我的一些經驗及想法。如果你對分享的內容有任何疑問,歡迎大家跟我交流及指正。
在我初入行的時候,我是以軟體開發的方向起步。當時大部份開發、測試及部署的過程,都以手動的方式去執行。
有時候由於測試的過程不嚴謹,部署到Production後才發現跟其他服務的API不相容。亦有一些時候因為一些伺服器改動,或者是設定上的錯誤(例如Dev/Staging/Production參數出錯),導致開發出的軟體未有以預計的方式運作。當一些相對嚴重的漏洞公佈時,我亦經常需要花費大量時間去查看每一個程序是否有引用相關的開源套件進行開發。這些不同的情況,通常都會使得整個開發及部署過程變得漫長而且痛苦。
這個時候DevOps的概念就可以幫助解決以上的問題。
DevOps(Development和Operations的組合詞)是一種重視「軟體開發人員(Dev)」和「IT運維技術人員(Ops)」之間溝通合作的文化、運動或慣例。
通過自動化「軟體交付」和「架構變更」的流程,來使得構建、測試、發布軟體能夠更加地快捷、頻繁和可靠。(引用自維基百科)
從以上的說明可以看出,DevOps的概念很大程度需要自動化的流程去支撐其的運作而。其中自動化的概念可以簡要整合為以下幾點。
所以CICD Pipeline的目的,除了主要消除Development跟Operation人員之間的分歧外,更可以利用自動化的手段,去讓整個軟體開的的流程更安全及可靠。
因此接下來的30天,我主要會集中為大家分享一些開源的CICD Pipeline工具,以及其中一些使用經驗及想法。
作為一個偶像派工程師,一直希望可以認識到更多行業中的朋友,以及得到更多人的認同。而在過去的鐵人賽中,我學習了不少的知識。是次參賽的目的除了讓自己有更多進步的機會,也希望將自己從這裡得到的經驗,分享給各位從事這個行業的朋友們,共同成長。